#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int a[50005];
int N, M, L;
bool check(int x)
{
	int y = 0;
	int stand = 0;
	for (int i = 1; i <= N+1; i++)
	{
		if (a[i] - a[stand] <x)
		{
			y++;
		}
		else
		{
			stand = i;
		}
	}
	return y <= M;
}
int find()
{
	int l = 0;
	int r = 1e9 + 1;
	while (l + 1 < r)
	{
		int mid = r + l >> 1;
		if (check(mid))
		{
			l = mid;
		}
		else
		{
            r = mid;
		}
	}
	return l;
}
int main()
{
	scanf("%d%d%d", &L, &N, &M);
	for (int i = 1; i <= N; i++)
	{
		scanf("%d", &a[i]);
	}
	a[N + 1] = L;
	printf("%d", find());
	return 0;
}